╬πδαΓδσφΦσ

╤εß√≥Φ 
╬ß≡αßε≥Ωα ±εß√≥ΦΘ
╤εß√≥Φ  ε≥ ∞√°Φ
└∩δσ≥ LineDraw
╚±⌡εΣφ√Θ ≥σΩ±≥
╬∩Φ±αφΦσ ≥σΩ±≥α

    ╬∩Φ±αφΦσ Φ±⌡εΣφεπε ≥σΩ±≥α

    ┬ φα°σ∞ α∩δσ≥σ ∞√ ß≤Σσ∞ ±ετΣαΓα≥ⁿ εß·σΩ≥ Ωδα±±α Vector, Ωε≥ε≡√Θ  Γδ σ≥±  ∞α±±ΦΓε∞ ± ΣΦφα∞Φ≈σ±ΩΦ Φτ∞σφ σ∞√∞ ≡ατ∞σ≡ε∞. ╟Σσ±ⁿ ∞√ ß≤Σσ∞ ⌡≡αφΦ≥ⁿ Ωεε≡ΣΦφα≥√ φα≡Φ±εΓαφφ√⌡ δΦφΦΘ.

    ╩δα±± Vector Φ∞σσ≥ ∩εδφεσ Φ∞  java.util.Vector, ∩ε²≥ε∞≤ ∞√ ∩εΣΩδ■≈ασ∞ ±εε≥Γσ≥±≥Γ≤■∙≤■ ßΦßδΦε≥σΩ≤ Ωδα±±εΓ:

    import java.util.*;

    ╧εδ  Ωδα±±α LineDraw

    ┬ φα°σ∞ Ωδα±±σ ∞√ ε∩≡σΣσδΦδΦ φσ±ΩεδⁿΩε ∩εδσΘ, ∩≡σΣφατφα≈σφφ√⌡ Σδ  ⌡≡αφσφΦ  ≥σΩ≤∙Φ⌡ Ωεε≡ΣΦφα≥ ≡Φ±≤σ∞√⌡ δΦφΦΘ:

    Dimension dmDown;
    Dimension dmUp;
    Dimension dmPrev;
    boolean   bDrawing;
    Vector    lines;

    ┬ ∩σ≡σ∞σφφ≤■ dmDown Ωδα±±α Dimension τα∩Φ±√Γα■≥±  Ωεε≡ΣΦφα≥√ Ω≤≡±ε≡α φα ∞ε∞σφ≥ φαµα≥Φ  ΩδαΓΦ°Φ ∞√°Φ. ┼±δΦ ∩εδⁿτεΓα≥σδⁿ φαµαδ ΩδαΓΦ°≤ ∞√°Φ Σδ  ≥επε ≈≥εß√ ∩≡Φ±≥≤∩Φ≥ⁿ Ω ≡Φ±εΓαφΦ■ δΦφΦΦ, ²≥ε ß≤Σσ≥ Ωεε≡ΣΦφα≥α∞Φ φα≈αδα δΦφΦΦ.

    ╩επΣα ∩εδⁿτεΓα≥σδⁿ ε≥∩≤±Ωασ≥ ΩδαΓΦ°≤ ∞√°Φ, Ωεε≡ΣΦφα≥√ τα∩Φ±√Γα■≥±  Γ ∩σ≡σ∞σφφ≤■ dmUp.

    ┬ ∩≡ε÷σ±±σ ≡Φ±εΓαφΦ  δΦφΦΦ ∞σ≥εΣ mouseDrag ±≥Φ≡ασ≥ ≡αφσσ φα≡Φ±εΓαφφ≤■ δΦφΦ■ Φ ≡Φ±≤σ≥ φεΓ≤■. ╩εε≡ΣΦφα≥√ Ωεφ÷α ±≥α≡εΘ δΦφΦΦ ⌡≡αφ ≥±  Γ ∩σ≡σ∞σφφεΘ dmPrev.

    ╧σ≡σ∞σφφα  bDrawing ≥Φ∩α boolean ⌡≡αφΦ≥ ≥σΩ≤∙σσ ±ε±≥ε φΦσ α∩δσ≥α. ╩επΣα α∩δσ≥ φα⌡εΣΦ≥±  Γ ±ε±≥ε φΦΦ ≡Φ±εΓαφΦ  δΦφΦΦ, Γ ²≥≤ ∩σ≡σ∞σφφ≤■ τα∩Φ±√Γασ≥±  τφα≈σφΦσ true, α ΩεπΣα φσ≥ - τφα≈σφΦσ false.

    ╚, φαΩεφσ÷, ∩σ≡σ∞σφφα  lines ≥Φ∩α Vector  Γδ σ≥±  ΣΦφα∞Φ≈σ±ΩΦ∞ ∞α±±ΦΓε∞, Γ Ωε≥ε≡ε∞ ⌡≡αφ ≥±  Ωεε≡ΣΦφα≥√ φα≡Φ±εΓαφφ√⌡ δΦφΦΘ.

    ╠σ≥εΣ getAppletInfo

    ╠σ≥εΣ getAppletInfo ΓετΓ≡α∙ασ≥ φατΓαφΦσ α∩δσ≥α Φ φσ Φ∞σσ≥ φΦΩαΩΦ⌡ ε±εßσφφε±≥σΘ.

    ╠σ≥εΣ init

    ╠σ≥εΣ init ±ß≡α±√Γασ≥ ∩≡ΦτφαΩ ≡Φ±εΓαφΦ , τα∩Φ±√Γα  Γ ∩εδσ bDrawing τφα≈σφΦσ false, α ≥αΩµσ ±ετΣασ≥ φεΓ√Θ ΣΦφα∞Φ≈σ±ΩΦΘ ∞α±±ΦΓ Γ ΓΦΣσ εß·σΩ≥α Ωδα±±α Vector:

    public void init()
    {
      bDrawing = false;
      lines = new Vector();
    }

    ╠σ≥εΣ paint

    ╧ε±δσ Φτ∞σφσφΦ  ÷Γσ≥α ⌠εφα Φ ≡Φ±εΓαφΦ  ≡α∞ΩΦ ∞σ≥εΣ paint ∩σ≡σßΦ≡ασ≥ Γ ÷ΦΩδσ Γ±σ ²δσ∞σφ≥√ ∞α±±ΦΓα lines, ≡Φ±≤  δΦφΦΦ:

    for(int i=0; i < lines.size(); i++) 
    {
      Rectangle p = 
        (Rectangle)lines.elementAt(i);
    
      g.drawLine( p.width, p.height, p.x, p.y);
    
      g.drawString("<" + p.width + "," 
        + p.height + ">", 
        p.width, p.height);
    
      g.drawString("<" + p.x + "," +
        p.y+ ">", p.x, p.y);
    }

    ─δ  εß·σΩ≥εΓ Ωδα±±α Vector ∞σ≥εΣ size ΓετΓ≡α∙ασ≥ ΩεδΦ≈σ±≥Γε ²δσ∞σφ≥εΓ Γ ∞α±±ΦΓσ, ≈σ∞ ∞√ Γε±∩εδⁿτεΓαδΦ±ⁿ Σδ  ∩≡εΓσ≡ΩΦ ≤±δεΓΦ  Γ√⌡εΣα Φτ ÷ΦΩδα.

    ╫≥εß√ ΦτΓδσ≈ⁿ ²δσ∞σφ≥ ∞α±±ΦΓα ∩ε σπε φε∞σ≡≤, ∞√ ∩≡Φ∞σφΦδΦ ∞σ≥εΣ elementAt, ∩σ≡σΣαΓ σ∞≤ ≈σ≡στ σΣΦφ±≥Γσφφ√Θ ∩α≡α∞σ≥≡ φε∞σ≡ ΦτΓδσΩασ∞επε ²δσ∞σφ≥α.

    ╥αΩ ΩαΩ Γ ∞α±±ΦΓσ ⌡≡αφ ≥±  εß·σΩ≥√ Ωδα±±α Rectangle, ∩σ≡σΣ ΦφΦ÷ΦαδΦτα÷ΦσΘ ±±√δΩΦ p ∞√ Γ√∩εδφ σ∞  Γφεσ ∩≡σεß≡ατεΓαφΦσ ≥Φ∩εΓ.

    ╩εε≡ΣΦφα≥√ Ωεφ÷εΓ δΦφΦΘ ≡Φ±≤■≥±  ± ∩ε∞ε∙ⁿ■ ≤µσ τφαΩε∞επε Γα∞ ∞σ≥εΣα drawString.

    ╧σ≡σΣ ταΓσ≡°σφΦσ∞ ≡αßε≥√ ∞σ≥εΣ paint ±ß≡α±√Γασ≥ ∩≡ΦτφαΩ ≡Φ±εΓαφΦ , τα∩Φ±√Γα  Γ ∩εδσ bDrawing τφα≈σφΦσ false:

    bDrawing = false;

    ╠σ≥εΣ mouseDown

    ┬ φα≈αδσ ±ΓεσΘ ≡αßε≥√ ∞σ≥εΣ mouseDown ε∩≡σΣσδ σ≥, ß√δ δΦ ±Σσδαφ εΣΦφα≡φ√Θ ∙σδ≈εΩ ΩδαΓΦ°σΘ ∞√°Φ, ΦδΦ ΣΓεΘφεΘ. ┼±δΦ ß√δ ±Σσδαφ ΣΓεΘφεΘ ∙σδ≈εΩ ∞√°ⁿ■, ∞σ≥εΣ ≤Σαδ σ≥ Γ±σ ²δσ∞σφ≥√ Φτ ∞α±±ΦΓα list, α τα≥σ∞ ∩σ≡σ≡Φ±εΓ√Γασ≥ εΩφε α∩δσ≥α, Γ√τ√Γα  ∞σ≥εΣ repaint:

    lines.removeAllElements();
    repaint();

    ╧ε±δσ ∩σ≡σ≡Φ±εΓΩΦ εΩφε α∩δσ≥α ε≈Φ∙ασ≥±  ε≥ δΦφΦΘ.

    ┼±δΦ µσ ß√δ ±Σσδαφ εΣΦφα≡φ√Θ ∙σδ≈εΩ ΩδαΓΦ°σΘ ∞√°Φ, ∞σ≥εΣ mouseDown ±ε⌡≡αφ σ≥ ≥σΩ≤∙Φσ Ωεε≡ΣΦφα≥√ Ω≤≡±ε≡α Γ ∩σ≡σ∞σφφ√⌡ dmDown Φ dmPrev, α τα≥σ∞ ±ß≡α±√Γασ≥ ∩≡ΦτφαΩ ≡Φ±εΓαφΦ :

    dmDown = new Dimension(x, y);
    dmPrev = new Dimension(x, y);
    bDrawing = false;

    ╠σ≥εΣ mouseUp

    ╩επΣα ∩εδⁿτεΓα≥σδⁿ ε≥∩≤±Ωασ≥ ΩδαΓΦ°≤ ∞√°Φ, Γ√τ√Γασ≥±  ∞σ≥εΣ mouseUp. ┬ σπε ταΣα≈≤ Γ⌡εΣΦ≥ ±ε⌡≡αφσφΦσ ≥σΩ≤∙Φ⌡ Ωεε≡ΣΦφα≥ Ω≤≡±ε≡α ∞√°Φ Γ ∩εδσ dmUp, α ≥αΩµσ ΣεßαΓδσφΦσ φεΓεπε ²δσ∞σφ≥α Γ ∞α±±ΦΓ lines:

    dmUp = new Dimension(x, y);
    lines.addElement(
      new Rectangle(dmDown.width, 
      dmDown.height, x, y));
    repaint();

    ╧ε±δσ ΣεßαΓδσφΦ  ²δσ∞σφ≥α Γ ∞α±±ΦΓ ∞σ≥εΣ mouseUp ΦφΦ÷ΦΦ≡≤σ≥ ∩σ≡σ≡Φ±εΓΩ≤ εΩφα α∩δσ≥α, Γ√τ√Γα  Σδ  ²≥επε ∞σ≥εΣ repaint.

    ╟α∞σ≥Φ∞, ≈≥ε Γ Ωα≈σ±≥Γσ Ωεε≡ΣΦφα≥ φα≈αδα δΦφΦΦ ∞√ τα∩Φ±√Γασ∞ Γ ²δσ∞σφ≥ ∞α±±ΦΓα Ωεε≡ΣΦφα≥√ ≥ε≈ΩΦ, πΣσ Γ ∩ε±δσΣφΦΘ ≡ατ ∩εδⁿτεΓα≥σδⁿ φαµΦ∞αδ Ω≤≡±ε≡ ∞√°Φ. ┬ Ωα≈σ±≥Γσ Ωεε≡ΣΦφα≥ Ωεφ÷α δΦφΦΦ Φ±∩εδⁿτ≤■≥±  ≥σΩ≤∙Φσ Ωεε≡ΣΦφα≥√ Ω≤≡±ε≡α φα ∞ε∞σφ≥ ε≥∩≤±ΩαφΦ  ΩδαΓΦ°Φ ∞√°Φ.

    ╠σ≥εΣ mouseDrag

    ─ε ±Φ⌡ ∩ε≡ φα°Φ α∩δσ≥√ Γ√∩εδφ δΦ ≡Φ±εΓαφΦσ ≥εδⁿΩε Γ ∞σ≥εΣσ paint, Φ ≥αΩ ∩ε±≥≤∩α■≥ ßεδⁿ°Φφ±≥Γε α∩δσ≥εΓ. ╬ΣφαΩε φα° α∩δσ≥ Σεδµσφ ≡Φ±εΓα≥ⁿ δΦφΦΦ Γε Γ≡σ∞  ∩σ≡σ∞σ∙σφΦ  Ω≤≡±ε≡α ∞√°Φ, ≥αΩ ΩαΩ Γ ∩≡ε≥ΦΓφε∞ ±δ≤≈ασ ∩εδⁿτεΓα≥σδ■ φσ ß≤Σσ≥ ΓΦΣφε, ΩαΩ ∩≡εΘΣσ≥ ≡Φ±≤σ∞α  δΦφΦ .

    ─δ  ≥επε ≈≥εß√ φα≡Φ±εΓα≥ⁿ ≈≥ε-δΦßε Γ εΩφσ α∩δσ≥α, φαεß⌡εΣΦ∞ε ∩εδ≤≈Φ≥ⁿ Ωεφ≥σΩ±≥ ε≥εß≡αµσφΦ . ╠σ≥εΣ≤ paint ²≥ε≥ Ωεφ≥σΩ±≥ ∩σ≡σΣασ≥±  ≈σ≡στ ∩α≡∞σ≥≡ ΩαΩ εß·σΩ≥ Ωδα±±α Graphics. ┼±δΦ µσ Γ√ ±εßΦ≡ασ≥σ±ⁿ ≡Φ±εΓα≥ⁿ Γ Σ≡≤πε∞ ∞σ≥εΣσ, ε≥δΦ≈φε∞ ε≥ paint, φσεß⌡εΣΦ∞ε ∩εδ≤≈Φ≥ⁿ Ωεφ≥σΩ±≥ ε≥εß≡αµσφΦ , φα∩≡Φ∞σ≡, ≥αΩ:

    Graphics g = getGraphics();

    ╧ε±δσ ∩εδ≤≈σφΦ  Ωεφ≥σΩ±≥α ε≥εß≡αµσφΦ  Φ ΓΩδ■≈σφΦ  ≡σµΦ∞α ≡Φ±εΓαφΦ  (τα∩Φ±ⁿ■ Γ ∩σ≡σ∞σφφ≤■ bDrawing τφα≈σφΦ  true) ∞σ≥εΣ mouseDrag ±≥Φ≡ασ≥ δΦφΦ■, Ωε≥ε≡α  ß√δα φα≡Φ±εΓαφα ≡αφσσ, Γ ∩≡ε÷σ±±σ ∩≡σΣ√Σ≤∙σπε Γ√τεΓα ²≥επε µσ ∞σ≥εΣα:

    g.setColor(Color.yellow);
    g.drawLine(dmDown.width, dmDown.height, 
       dmPrev.width, dmPrev.height);

    ─δ  ±≥Φ≡αφΦ  δΦφΦΦ ∞√ ≡Φ±≤σ∞ σσ φα ≥ε∞ µσ ∞σ±≥σ ± Φ±∩εδⁿτεΓαφΦσ∞ ÷Γσ≥α, ±εΓ∩αΣα■∙σπε ± ÷Γσ≥ε∞ ⌠εφα.

    ─αδσσ ∞σ≥εΣ mouseDrag ≡Φ±≤σ≥ φεΓ≤■ δΦφΦ■ ≈σ≡φεπε ÷Γσ≥α, ±εσΣΦφ   ≥ε≈Ω≤, Γ Ωε≥ε≡εΘ ß√δα φαµα≥α ΩδαΓΦ°α ∞√°Φ, ± ≥ε≈ΩεΘ ≥σΩ≤∙σπε ≡α±∩εδεµσφΦ  Ω≤≡±ε≡α ∞√°Φ:

    g.setColor(Color.black);
    g.drawLine(dmDown.width, 
      dmDown.height, x, y);

    ╧ε±δσ ≡Φ±εΓαφΦ  δΦφΦΦ Ωεε≡ΣΦφα≥√ σσ Ωεφ÷α ±ε⌡≡αφ ■≥±  Γ ∩εδσ dmPrev Σδ  ±≥Φ≡αφΦ  ²≥εΘ δΦφΦΦ ∩≡Φ ±δσΣ≤■∙σ∞ Γ√τεΓσ ∞σ≥εΣα mouseDrag:

    dmPrev = new Dimension(x, y);
    return true;

    ╠σ≥εΣ mouseMove

    ╠σ≥εΣ mouseMove φσ Σσδασ≥ φΦ≈σπε, τα Φ±Ωδ■≈σφΦσ∞ ≥επε, ≈≥ε εφ ε≥Ωδ■≈ασ≥ ≡σµΦ∞ ≡Φ±εΓαφΦ . ╥αΩΦ∞ εß≡ατε∞, ∩≡ε±≥εσ ∩σ≡σ∞σ∙σφΦσ Ω≤≡±ε≡α ∞√°Φ φαΣ εΩφε∞ α∩δσ≥α φσ ∩≡ΦΓεΣΦ≥ Ω ≡Φ±εΓαφΦ■ δΦφΦΘ.



Java | ╧≡εΣ≤Ω≥√ Φ ≡σ°σφΦ  | ╥σ⌡φεδεπΦΦ | ╤σ≡ΓΦ± Φ εß≤≈σφΦσ
╬ Ωε∞∩αφΦΦ | ╧α≡≥φσ≡√ | ═εΓε±≥Φ | ╧εΦ±Ω
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content